/**
 * 安卓白金英雄坛制作组 <br>
 * 文件名：JiZiJue.java <br>
 * 创建时间：2013-8-21 上午9:22:40 <br>
 * 所属项目：GmudEX <br>
 * @author 12548 <br>
 */
package lostland.gmud.exv2.battle.proc.stunt;

import com.orhanobut.logger.Logger;

import lostland.gmud.exv2.battle.BattleScreen;
import lostland.gmud.exv2.battle.ViewScreen;
import lostland.gmud.exv2.battle.proc.Status;
import lostland.gmud.exv2.battle.proc.StuntScreen;
import lostland.gmud.exv2.data.Npc;
import lostland.gmud.exv2.data.Room;

/**
 * 类名：JiZiJue <br>
 * 说明：31.太极拳·1.挤字诀
 *
 * @author 12548
 */
public class JiZiJue extends Status {


	/**
	 * @param zdp
	 * @param bdp
	 */
	public JiZiJue(Npc zdp, Npc bdp) {
		super(zdp, bdp);
	}

	/* （非 Javadoc）
	 * @see lostland.gmud.exv2.battle.proc.Status#execute()
	 */
	@Override
	public void execute() {

		double hit_rate = 0.3 + 0.3 * (((double) zdp.getFp() - bdp.getFp()) / (double) (zdp.getFp() + bdp.getFp() + 1));

		Logger.i("命中率1=" + hit_rate);

		boolean hit = Math.random() < hit_rate;

		if (hit) {
			new ViewScreen(BattleScreen.bsp(zdp, bdp, "跟著$N横劲发出，$n给这么一挤，招式中的劲力打了个空，心中空荡荡的十分难受！")).pushToGame();
			bdp.setFp(bdp.getFp() - (zdp.getFp() / 10 + 315 + zdp.getAttr(Room.ATTR_ADS)));
			if (bdp.getFp() < 0) bdp.setFp(0);
		} else {
			double hit_rate2 = 0.4 + 0.4 * (((double) zdp.getFp() - bdp.getFp()) / (double) (zdp.getFp() + bdp.getFp() + 1));

			Logger.i("命中率2=" + hit_rate2);

			boolean hit2 = Math.random() < hit_rate2;

			if (hit2) {
				new ViewScreen(BattleScreen.bsp(zdp, bdp, "$n见此情景，一声惊噫，连忙收回自己的劲力，闪身避让！")).pushToGame();
				bdp.setFp(bdp.getFp() - 350);
				if (bdp.getFp() < 0) bdp.setFp(0);
			} else {
				new ViewScreen(BattleScreen.bsp(zdp, bdp, "没想到$n内力浑厚无比，$N这一挤非但分毫无功，自己反而被牵得跌出几步！")).pushToGame();
				zdp.setTransfixed(3);
			}
		}

		StuntScreen.StuntOver();

	}

}
